Spectral efficiency or throughput of a communications network can be improved by employing a multiple-input-multiple-output (MIMO) system in which a transmitter uses multiple antennas and the receiver uses multiple antennas. A MIMO system in which there are two antennas at the transmitter and two antennas at the receiver can practically achieve twice the throughput, i.e., the amount of information that can be transferred in a period of time, of a single-input-single-output (SISO) system. The throughput increases linearly with every additional antenna. To increase throughput, MIMO systems can use a variety of techniques including spatial multiplexing (SM), space-time coding (STC), or beamforming (also known as adaptive antenna). In spatial multiplexing, a signal (coded and modulated data stream) is transmitted across different spatial domains.
A MIMO system can use adaptive antenna technology to improve the performance of a transceiver such as that of a base station or wireless router, or the device used by a subscriber, e.g., cell phone, or WiFi card, which is coupled to multiple antennas. The transmitter of a transceiver using adaptive antenna technology can selectively direct the energy of the transmitter in the direction of a particular receiver (e.g., the receiver of a subscriber or the receiver of a base station's transceiver). Similarly, the receiver can give preference to signals arriving from a particular transmitting device while rejecting or attenuating those that are coming from other directions. The end effect of beam forming is that the adaptive antenna system in a transceiver either radiates signal energy primarily in a certain direction(s) and minimally radiates signal energy in other directions, or alternatively passes signal energy received from a certain direction(s) to the demodulator and decoder in the receiving chain while attenuating the energy of other signal(s) received from other directions. Beamforming allows communication to occur in situations that would otherwise prevent communication due to low SNR.
Beamforming in some MIMO implementations can allow a base station's transceiver to provide space division multiple access (SDMA) to multiple subscriber devices all of which are using the same channel simultaneously.
The higher performance of MIMO systems that use beamforming comes at a cost of relatively increased complexity or resource consumption (e.g., power, computation) at transceivers. To perform beamforming in a particular direction and provide multiple data streams to multiple receivers, a transceiver generates codeword matrices that are used to specify the antenna or antennas that are being activated. The codewords selected depend on the quality and nature of the channel between the transceiver and receiver. However, as described below, the transceiver often depends on the receiver to provide it with indications as to channel quality and codeword to use.
Many, if not most, MIMO systems operate in Frequency Division Duplex (FDD) mode. FDD refers to the use of separate frequencies for the forward link and reverse link. In FDD mode, the transmitter itself cannot determine the channel estimate for the forward link to the receiver because the receiver does not transmit back to the transmitter on the same frequencies that the transmitter uses for the forward link. The current Institute of Electrical and Electronics Engineers (IEEE) 802.16e system determines a beamforming matrix using 3-bit or 6-bit quantized feedback information, where the 3-bit or 6-bit quantized feedback information is an index of a codeword in a codebook that contains multiple codewords.
The codeword selected by a receiver allows a transmitter to better take advantage of the channel's dominant modes. Depending on the criterion used to select a codeword matrix, a channel's dominant modes are the combination of frequencies and antennas that would deliver the most information to the receiver given the quality of the channel link—between the base station transceiver and the receiver—that may be suffering from varying degrees of fading, errors, etc. . . .
A MIMO system in which a receiver communicates back to a transceiver an indication of a codeword matrix is referred to as a closed loop MIMO system. Performance of a beamforming MIMO system is substantially enhanced by having a receiver communicate to a base station's transceiver feedback information regarding the beamforming matrix (or codeword) that the receiver computes and quantizes in response to perceived channel conditions.
Since the feedback information uses bandwidth that could ostensibly be used by data, a conventional approach to reduce the overhead associated with this feedback is to provide matrix codebook(s) at each of the transmitter and the receiver, where each of the codebook(s) includes a plurality, or set, of potential beamforming matrices that may be used depending on the channel conditions perceived at the receiver. When the receiver has identified the appropriate matrix codebook(s), the receiver will typically feed back only an index (instead of the actual matrix entries) that points to the appropriate codeword in the codebook(s) stored at the transmitter.
For a different combination of transmit antennas, Nt, and receiver antennas, Ns, a different matrix codebook is required. The order or size of the codeword matrices in a codebook is based on the number of transmitter antennas and the number of data streams: Nt by Ns matrix.
FIG. 1 is a block diagram of a conventional closed-loop MIMO system with a transmitter and receiver that provides a codeword indication to the transmitter. Referring to FIG. 1, system 100 includes transmitter 102, which includes a coder and modulator 103, beamformer 104, transmitter beamforming logic 109, and multiple transmit antennas 106 to 108. Receiver 122 includes demodulator and decoder 123, channel and symbol estimator 124, receiver beamforming logic 129, and multiple receiver antennas 126 to 128.
At transmitter 102, coder and modulator 103 encodes transmission data in a predetermined coding scheme and modulates the coded data in a predetermined modulation scheme. Transmitter beamforming logic 109 generates a beamforming matrix based upon a feedback index received from receiver beamforming logic 129. Beamformer 104 multiplies the data and system information vector (that is, complex symbols of both data and signals such as training symbols, pilot signals, etc. . . . ) received from coder and modulator 103 by the generated beamforming matrix and transmits the resulting signals through antennas 106 to 108.
At receiver 122, the transmitted signals which have been transformed by the channel and corrupted by noise are received at antennas 126 to 128 and are provided to channel and symbol estimator 124. Channel and symbol estimator 124 calculates a channel coefficient matrix, H, by estimating the effect of the channel on pilot signals which are predefined signals whose characteristics are known to the receiver. By ‘comparing’ the received pilot signals to a stored alias, the receiver is able to determine H. Typically, H represents how the channel has ‘undesirably’ affected the transmitted signal.
Channel and symbol estimator 124 produces received symbols estimates by using knowledge of H to ‘reverse’ the effect of the channel on the transmitted symbols. Demodulator and decoder 123 demodulate and decode the received symbol estimates, thereby recovering the original information data. Meanwhile, receiver beamforming logic 129 selects a beamforming matrix or codeword by computing a cost function, e.g. Eq. 1 below.
Determining the proper codeword—for which an indication is to be sent to a transceiver—is computationally intensive because it involves going through a codebook and determining the degree to which codeword matrices in the codebook satisfy a certain objective such as maximizing received signal-to-noise Ratio (SNR) or minimizing the mean square error (MSE) of a received signal. To select an optimal beamforming vector or matrix, a receiver needs to compute the following equations and send back the resulting codeword, Vi, that optimizes the selected criterion, to the transmitter on a feedback channel.
                                                        SNR              MMSE                        ⁡                          (                              V                i                            )                                =                                                    min                                  k                  =                                      1                    ⁢                                                                                  ⁢                    …                    ⁢                                                                                  ⁢                    S                                                              ⁢                                                E                  t                                                                                            SN                      0                                        ⁡                                          [                                                                                                    V                            i                            H                                                    ⁢                                                      H                            H                                                    ⁢                                                      HV                            i                                                                          +                                                                              (                                                                                          SN                                0                                                                                            E                                t                                                                                      )                                                    ⁢                                                      I                            S                                                                                              ]                                                                            k                    ,                    k                                                        -                    1                                                                        -            1                          ⁢                                  ⁢                              V            ^                    =                                    argmax                              V                i                                      ⁡                          (                                                SNR                  MMSE                                ⁡                                  (                                      V                    i                                    )                                            )                                                          Eq        .                                  ⁢        1            
In Eq. 1, codeword Vi denotes a beamforming vector or matrix selected from a known codebook, Et denotes total transmitted energy, S denotes the number data streams, No denotes noise power Is denotes an identity matrix, H denotes a channel coefficient matrix between the transmit antennas and the receive antennas.
TABLE 1IndexColumn 1Column 2000 or V1001001001 or V2−0.7201 + j0.3126 0.2483 + j0.2684−0.23260.1898 + j0.54190.1898 − j0.54190.7325010 or V3−0.45370.0752 − j0.24830.0752 + j0.24830.9537−0.6283 + j0.5763 −0.0659 − j0.1371 011 or V4−0.0063 − j0.6527 0.4621 + j0.33210.14770.4394 − j0.59910.4394 + j0.59910.3522100 or V50.7171 − j0.3202−0.2533 − j0.2626 −0.23370.1951 + j0.53900.1951 − j0.53900.7337101 or V60.4819 + j0.45170.2963 + j0.48010.1354−0.7127 − j0.1933 −0.7127 + j0.1933 0.3692110 or V70.0686 + j0.13860.6200 − j0.58450.95220.0770 + j0.25210.0770 − j0.2521−0.4522111 or V8−0.0054 + j0.6540 −0.4566 − j0.3374 0.14460.4363 − j0.60090.4363 + j0.60090.3554
Table 1 shows the codebook for the case of three transmit antennas, two transmission streams and 3-bit feedback information. In this case, the two columns represent how the two data streams are split over the three transmit antennas before they are combined together and transmitted. The receiver computes a cost function, e.g., Eq. 1, sequentially over the beamforming matrices V1 to V8 in the above codebook and selects a beamforming matrix that maximizes that cost function. The receiver then feeds back the index of the selected beamforming matrix in three bits. The transmitter carries out beamforming by multiplying a transmission vector by the beamforming matrix indicated by the index. This beamforming enhances link performance. The current IEEE 802.16e system adopts 19 different codebooks for two to four transmit antennas, one to four streams, and 3-bit or 6-bit feedback information.
Performing repeated matrix computations for complex values, in addition to being computationally intensive, often involves consuming battery power that is usually a scarce resource on mobile devices. Repeated matrix computations can also add an element of delay in returning an indication of a codeword to the transceiver. Furthermore, inefficient repeated matrix comparisons result in power (often battery power) being unnecessarily wasted and/or additional unnecessary delay in identifying a codeword that matches the dominant channel modes.
Prior art solutions suffer from many shortcomings, some of which are identified herein. As described above, current devices and systems which provide feedback regarding a codeword selected at a receiver employ solutions that suffer from one or more of the following defects: are computationally intensive, consume relatively more power, require a relatively large amount of memory, and are a possible source of delay in returning feedback to a transceiver in a timely manner. Given the shortcomings of the prior art, it is desirable to provide solutions that overcome the deficiencies of the prior art.